/*
	author: TangQiao , Wind @ Beijing Normal University

	problem name: Packets
	
	source : PKU Online Judge
	
	problem type: 贪心题 
	
	problem description: 给你边长为1到6的正方形的个数,让你把它们放到N个6X6的盒子中.
 	要求N尽量小.问最小N为多少. 
	
	problem solution: 首先边长为4~6的正方形一个肯定会独占一个盒子.
  	然后边长为3的正方形可以自己四个放在一起,或者空出一些可以放边长为2的空间来. 
  	空出来可以放边长为2的空间的个数为: 
       nRemain32 = (4 - nSize[3] % 4) * 2 - 1;
    边长为四的正方形在放后也会空出可以放边长为2的正方形,放一个空5个;
	
    所以总共可以放边长为2的正方形的个数为:nSize[4] * 5 + nRemain32
	
 	如果:nSize[2] > nSize[4] * 5 + nRemain32
 	则表示还要拿一个新盒子了.
    
    最后算出空出的其它边长的1的空间.放下边长为1的正方形,不够再加新的.
     
	
    award & note :  
        虽然说是贪心题,可是却非常不好写. 此代码为别人的.我只是读懂了而已. 
	
	date : 2005.8.28 11:03 PKU1017 看懂代码
	
*/
#include <iostream>
using namespace std;
int main(){
	int nBox = 0, nSize[7], nEsc = 0, nRemain32, nRemain21;
	for(int i = 1; i <= 6; i++){
		cin >> nSize[i];
		if(nSize[i] > 0) nEsc ++;
	}
	while(nEsc !=0){
		nEsc = 0;
		nBox = 0;
		nBox += nSize[6] + nSize[5] + nSize[4];
		if(nSize[3] % 4 != 0){
			nBox += nSize[3] / 4 + 1;
			nRemain32 = (4 - nSize[3] % 4) * 2 - 1;
		}
		else{
		nBox += nSize[3] / 4;
		nRemain32 = 0;
		}
		if(nSize[2] > nSize[4] * 5 + nRemain32){
			int t = (nSize[2] - nSize[4] * 5 - nRemain32);
			nBox += (t % 9) ? (t / 9 + 1) : t / 9;
		}
		nRemain21 = (nBox - nSize[6]) * 36 - (nSize[5] * 25 + nSize[4] * 16 + nSize[3] * 9 + nSize[2] * 4);
		//cout<<nRemain21<<(nSize[1] - nRemain21)  <<endl;
		if(nSize[1] > nRemain21)
			nBox += ((nSize[1] - nRemain21) % 36) ?((nSize[1] - nRemain21) / 36 + 1) : (nSize[1] - nRemain21) / 36;
		cout << nBox << endl;
		for(int i = 1; i <= 6; i++){
			cin >> nSize[i];
			if(nSize[i] > 0) nEsc ++;
		}
	}
}

